package com.starview.star.operators.hash;

import com.starview.star.operators.Builtin;
import com.starview.star.operators.Intrinsics;
import com.starview.star.operators.hash.runtime.HashTreeIterable.HashIterate;
import com.starview.star.operators.hash.runtime.HashTreeIterable.HashIxIterate;
import com.starview.star.operators.hash.runtime.HashTreeOps.DeleteFromHash;
import com.starview.star.operators.hash.runtime.HashTreeOps.HashContains;
import com.starview.star.operators.hash.runtime.HashTreeOps.HashCopy;
import com.starview.star.operators.hash.runtime.HashTreeOps.HashCreate;
import com.starview.star.operators.hash.runtime.HashTreeOps.HashDelete;
import com.starview.star.operators.hash.runtime.HashTreeOps.HashEmpty;
import com.starview.star.operators.hash.runtime.HashTreeOps.HashEqual;
import com.starview.star.operators.hash.runtime.HashTreeOps.HashGet;
import com.starview.star.operators.hash.runtime.HashTreeOps.HashMerge;
import com.starview.star.operators.hash.runtime.HashTreeOps.HashSize;
import com.starview.star.operators.hash.runtime.HashTreeOps.HashUpdate;
import com.starview.star.operators.hash.runtime.HashTreeOps.UpdateIntoHash;

public class HashTreeOps
{
  public static void declare(Intrinsics cxt)
  {
    cxt.declareBuiltin(new Builtin(HashCreate.name, HashCreate.type(), HashCreate.class));
    cxt.declareBuiltin(new Builtin(HashCopy.name, HashCopy.type(), HashCopy.class));
    cxt.declareBuiltin(new Builtin(HashContains.name, HashContains.type(), HashContains.class));
    cxt.declareBuiltin(new Builtin(HashGet.name, HashGet.funType(), HashGet.class));
    cxt.declareBuiltin(new Builtin(HashUpdate.name, HashUpdate.type(), HashUpdate.class));
    cxt.declareBuiltin(new Builtin(HashMerge.name, HashMerge.type(), HashMerge.class));
    cxt.declareBuiltin(new Builtin(DeleteFromHash.name, DeleteFromHash.type(), DeleteFromHash.class));
    cxt.declareBuiltin(new Builtin(UpdateIntoHash.name, UpdateIntoHash.type(), UpdateIntoHash.class));
    cxt.declareBuiltin(new Builtin(HashDelete.mapDelete, HashDelete.funType(), HashDelete.class));
    cxt.declareBuiltin(new Builtin(HashEmpty.mapEmpty, HashEmpty.type(), HashEmpty.class));
    cxt.declareBuiltin(new Builtin(HashSize.name, HashSize.type(), HashSize.class));

    cxt.declareBuiltin(new Builtin(HashIterate.name, HashIterate.type(), HashIterate.class));
    cxt.declareBuiltin(new Builtin(HashIxIterate.name, HashIxIterate.type(), HashIxIterate.class));
    cxt.declareBuiltin(new Builtin(HashEqual.name, HashEqual.type(), HashEqual.class));
  }
}
